const {
  SyncHook
} = require("../lib/index");
let sh = new SyncHook(["name", "age"])
sh.tap({name: 'A'}, (name1, name2) => {
  console.log('A:', name1, name2)
})
sh.tap({name: 'A'}, (name) => {
  console.log('A2:', name)
})
// sh.call('Tapable');
// sh.intercept({
//   call: context => {},
//   register: option => {
//     console.log(option);
//     return option;
//   },
//   tap: (context, tap) => {},
//   done: () => {
//     console.log('done');
//   },
//   error: err => {},
//   result: () => {
//     console.log('res');
//   }
// })
sh.tap({
  name: 'B',
  context: true,
  // stage: 2
  before: 'A'  // 影响该回调的执行顺序, 回调B比回调A先执行
}, (context, name) => {
  console.log('B:', context, name)
})

sh.call('Tapable', 'test');